package fork.join.main;

import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.concurrent.ForkJoinPool;

import fork.join.scanner.FolderScannerThread;


public class MainThread
{
    private static final Path CHEMIN = Paths.get( "D:\\" );
    private static final String FILTRE = "*.py";

    public static void main( String[] args )
    {

        //Création de notre tâche principale qui se charge de découper son travail en sous-tâches
        FolderScannerThread fs = new FolderScannerThread( CHEMIN, FILTRE );

        //Nous récupérons le nombre de processeurs disponibles
        int processeurs = Runtime.getRuntime( ).availableProcessors( );
        //Nous créons notre pool de thread pour nos tâches de fond
        ForkJoinPool pool = new ForkJoinPool( processeurs );
        Long start = System.currentTimeMillis( );

        //Nous lançons le traitement de notre tâche principale via le pool
        pool.invoke( fs );

        Long end = System.currentTimeMillis( );
        System.out.println( "Il y a " + fs.getResultat( ) + " fichier(s) portant l'extension " + FILTRE );
        System.out.println( "Temps de traitement : " + ( end - start ) );
    }
}